home *** CD-ROM | disk | FTP | other *** search
Wrap
XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) NNNNAAAAMMMMEEEE XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa - The DrawingArea widget class SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <Xm/DrawingA.h> VVVVEEEERRRRSSSSIIIIOOOONNNN This page documents Motif 2.1. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN DrawingArea is an empty widget that is easily adaptable to a variety of purposes. It does no drawing and defines no behavior except for invoking callbacks. Callbacks notify the application when graphics need to be drawn (exposure events or widget resize) and when the widget receives input from the keyboard or mouse. Applications are responsible for defining appearance and behavior as needed in response to DrawingArea callbacks. DrawingArea is also a composite widget and subclass of XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr that supports minimal geometry management for multiple widget or gadget children. DrawingArea uses the XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss resource of XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrrto define whether or not DrawingArea will receive focus when it is traversed to, even if it has traversable children. If XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss is NULL, DrawingArea receives focus only if it does not have any traversable children. If XXXXmmmmNNNNiiiinnnniiiittttiiiiaaaallllFFFFooooccccuuuussss is not NULL, then DrawingArea receives focus when traversed to. In the latter case, the application first needs to be able to realize that the DrawingArea will receive focus, then, as appropriate, needs to either call the XXXXmmmmPPPPrrrroooocccceeeessssssssTTTTrrrraaaavvvveeeerrrrssssaaaallll function for the desired child, or to navigate across the private DrawingArea graphics objects. The following resources are not currently used by the DrawingArea widget: XXXXmmmmNNNNsssshhhhaaaaddddoooowwwwTTTThhhhiiiicccckkkknnnneeeessssssss, XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp, XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwPPPPiiiixxxxmmmmaaaapppp, XXXXmmmmNNNNttttooooppppSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr, and XXXXmmmmNNNNbbbboooottttttttoooommmmSSSShhhhaaaaddddoooowwwwCCCCoooolllloooorrrr DDDDaaaattttaaaa TTTTrrrraaaannnnssssffffeeeerrrr BBBBeeeehhhhaaaavvvviiiioooorrrr DrawingArea has no widget class conversion or destination procedure. Subclasses and the XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures are responsible for any conversion of selections. Subclasses and the XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk procedures are responsible for any data transfers to the widget. CCCCllllaaaasssssssseeeessss DrawingArea inherits behavior and resources from the CCCCoooorrrreeee, CCCCoooommmmppppoooossssiiiitttteeee, CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt, and XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr classes. Page 1 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) The class pointer is _x_m_D_r_a_w_i_n_g_A_r_e_a_W_i_d_g_e_t_C_l_a_s_s. The class name is XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa. NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC prefix and use the remaining letters. To specify one of the defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss (S), retrieved by using XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss (G), or is not applicable (N/A). XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNconvertCallback XmCCallback XtCallbackList NULL C XmNdestinationCallback XmCCallback XtCallbackList NULL C XmNexposeCallback XmCCallback XtCallbackList NULL C XmNinputCallback XmCCallback XtCallbackList NULL C XmNmarginHeight XmCMarginHeight Dimension 10 CSG XmNmarginWidth XmCMarginWidth Dimension 10 CSG XmNresizeCallback XmCCallback XtCallbackList NULL C XmNresizePolicy XmCResizePolicy unsigned char XmRESIZE_ANY CSG XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk Specifies a list of callbacks called when the DrawingArea is asked to convert a selection. The type of the structure whose address is passed to these callbacks is XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason is XXXXmmmmCCCCRRRR____OOOOKKKK. XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk Specifies a list of callbacks called when the DrawingArea is the destination of a transfer operation. The type of the structure whose address is passed to these callbacks is XXXXmmmmDDDDeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt. The reason is XXXXmmmmCCCCRRRR____OOOOKKKK. XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk Specifies the list of callbacks that is called when DrawingArea receives an exposure event. The callback reason is XXXXmmmmCCCCRRRR____EEEEXXXXPPPPOOOOSSSSEEEE. The callback structure also includes the exposure event. The default bit gravity for Manager windows is Page 2 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) NNNNoooorrrrtttthhhhWWWWeeeessssttttGGGGrrrraaaavvvviiiittttyyyy. This may cause the XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk procedures not to be invoked when the DrawingArea window is made smaller. XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk Specifies the list of callbacks that is called when the DrawingArea receives a keyboard or mouse event (key or button, up or down). The callback reason is XXXXmmmmCCCCRRRR____IIIINNNNPPPPUUUUTTTT. The callback structure also includes the input event. XXXXmmmmNNNNmmmmaaaarrrrggggiiiinnnnHHHHeeeeiiiigggghhhhtttt Specifies the minimum spacing in pixels between the top or bottom edge of DrawingArea and any child widget. XXXXmmmmNNNNmmmmaaaarrrrggggiiiinnnnWWWWiiiiddddtttthhhh Specifies the minimum spacing in pixels between the left or right edge of DrawingArea and any child widget. XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk Specifies the list of callbacks that is called when the DrawingArea is resized. The callback reason is XXXXmmmmCCCCRRRR____RRRREEEESSSSIIIIZZZZEEEE. XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeePPPPoooolllliiiiccccyyyy Controls the policy for resizing DrawingArea widgets. Possible values include XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____NNNNOOOONNNNEEEE (fixed size), XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____AAAANNNNYYYY (shrink or grow as needed), and XXXXmmmmRRRREEEESSSSIIIIZZZZEEEE____GGGGRRRROOOOWWWW (grow only). IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss DrawingArea inherits behavior and resources from the following superclasses. For a complete description of each resource, refer to the reference page for that superclass. XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNbottomShadowColor XmCBottomShadowColor Pixel dynamic CSG XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNforeground XmCForeground Pixel dynamic CSG XmNhelpCallback XmCCallback XtCallbackList NULL C XmNhighlightColor XmCHighlightColor Pixel dynamic CSG XmNhighlightPixmap XmCHighlightPixmap Pixmap dynamic CSG XmNinitialFocus XmCInitialFocus Widget NULL CSG XmNlayoutDirection XmCLayoutDirection XmDirection dynamic CG XmNnavigationType XmCNavigationType XmNavigationType XmTAB_GROUP CSG XmNpopupHandlerCallback XmCCallback XtCallbackList NULL C XmNshadowThickness XmCShadowThickness Dimension 0 CSG Page 3 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) XmNstringDirection XmCStringDirection XmStringDirection dynamic CG XmNtopShadowColor XmCTopShadowColor Pixel dynamic CSG XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG XmNtraversalOn XmCTraversalOn Boolean True CSG XmNunitType XmCUnitType unsigned char dynamic CSG XmNuserData XmCUserData XtPointer NULL CSG CCCCoooommmmppppoooossssiiiitttteeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNchildren XmCReadOnly WidgetList NULL G XmNinsertPosition XmCInsertPosition XtOrderProc NULL CSG XmNnumChildren XmCReadOnly Cardinal 0 G CCCCoooorrrreeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG XmNancestorSensitive XmCSensitive Boolean dynamic G XmNbackground XmCBackground Pixel dynamic CSG XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderWidth XmCBorderWidth Dimension 0 CSG XmNcolormap XmCColormap Colormap dynamic CG XmNdepth XmCDepth int dynamic CG XmNdestroyCallback XmCCallback XtCallbackList NULL C XmNheight XmCHeight Dimension dynamic CSG XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG XmNscreen XmCScreen Screen * dynamic CG XmNsensitive XmCSensitive Boolean True CSG XmNtranslations XmCTranslations XtTranslations dynamic CSG XmNwidth XmCWidth Dimension dynamic CSG XmNx XmCPosition Position 0 CSG XmNy XmCPosition Position 0 CSG CCCCaaaallllllllbbbbaaaacccckkkk IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn A pointer to the following structure is passed to the XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk, XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk, and XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk procedures: typedef struct { int _r_e_a_s_o_n; XEvent * _e_v_e_n_t; Window _w_i_n_d_o_w; } XmDrawingAreaCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. _e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the callback. This is NULL for the XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk. Page 4 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) _w_i_n_d_o_w Is set to the widget window. A pointer to the following structure is passed to the XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures: typedef struct { int _r_e_a_s_o_n; XEvent *_e_v_e_n_t; Atom _s_e_l_e_c_t_i_o_n; Atom _t_a_r_g_e_t; XtPointer _s_o_u_r_c_e__d_a_t_a; XtPointer _l_o_c_a_t_i_o_n__d_a_t_a; int _f_l_a_g_s; XtPointer _p_a_r_m; int _p_a_r_m__f_o_r_m_a_t; unsigned long _p_a_r_m__l_e_n_g_t_h; int _s_t_a_t_u_s; XtPointer _v_a_l_u_e; Atom _t_y_p_e; int _f_o_r_m_a_t; unsigned long _l_e_n_g_t_h; } XmConvertCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. _e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the callback. It can be NULL. _s_e_l_e_c_t_i_o_n Indicates the selection for which conversion is being requested. Possible values are _C_L_I_P_B_O_A_R_D, _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP. _t_a_r_g_e_t Indicates the conversion target. _s_o_u_r_c_e__d_a_t_a Contains information about the selection source. When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, _s_o_u_r_c_e__d_a_t_a is the DragContext. Otherwise, it is NULL. llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa Contains information about the location of data to be converted. If the value is NULL, the data to be transferred consists of the widget's current selection. _f_l_a_g_s Indicates the status of the conversion. Following are the possible values: XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____NNNNOOOONNNNEEEE This flag is currently unused. Page 5 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____PPPPAAAARRRRTTTTIIIIAAAALLLL The target widget was able to be converted, but some data was lost. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____SSSSAAAAMMMMEEEE The conversion target is the source of the data to be transferred. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____TTTTRRRRAAAANNNNSSSSAAAACCCCTTTT This flag is currently unused. _p_a_r_m Contains parameter data for this target. If no parameter data exists, the value is NULL. When _s_e_l_e_c_t_i_o_n is _C_L_I_P_B_O_A_R_D and _t_a_r_g_e_t is ____MMMMOOOOTTTTIIIIFFFF____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS or ____MMMMOOOOTTTTIIIIFFFF____DDDDEEEEFFFFEEEERRRRRRRREEEEDDDD____CCCCLLLLIIIIPPPPBBBBOOOOAAAARRRRDDDD____TTTTAAAARRRRGGGGEEEETTTTSSSS, the value is the requested operation (XXXXmmmmCCCCOOOOPPPPYYYY, XXXXmmmmMMMMOOOOVVVVEEEE, or XXXXmmmmLLLLIIIINNNNKKKK). _p_a_r_m__f_o_r_m_a_t Specifies whether the data in _p_a_r_m should be viewed as a list of _c_h_a_r, _s_h_o_r_t, or _l_o_n_g quantities. Possible values are 0 (when _p_a_r_m is NULL), 8 (when the data in _p_a_r_m should be viewed as a list of _c_h_a_rs), 16 (when the data in _p_a_r_m should be viewed as a list of _s_h_o_r_ts), or 32 (when the data in _p_a_r_m should be viewed as a list of _l_o_n_gs). Note that _p_a_r_m__f_o_r_m_a_t symbolizes a data type, not the number of bits in each list element. For example, on some machines, a _p_a_r_m__f_o_r_m_a_t of 32 means that the data in _p_a_r_m should be viewed as a list of 64-bit quantities, not 32-bit quantities. _p_a_r_m__l_e_n_g_t_h Specifies the number of elements of data in _p_a_r_m, where each element has the size specified by _p_a_r_m__f_o_r_m_a_t. When _p_a_r_m is NULL, the value is 0. _s_t_a_t_u_s An IN/OUT member that specifies the status of the conversion. The initial value is XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT. The callback procedure can set this member to one of the following values: XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT This value means that the widget class conversion procedure, if any, is called after the callback procedures return. If the widget class conversion procedure produces any data, it overwrites the data provided by the callback procedures in the _v_a_l_u_emember. Page 6 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____MMMMEEEERRRRGGGGEEEE This value means that the widget class conversion procedure, if any, is called after the callback procedures return. If the widget class conversion procedure produces any data, it appends its data to the data provided by the callback procedures in the _v_a_l_u_e member. This value is intended for use with targets that result in lists of data, such as _T_A_R_G_E_T_S. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDOOOONNNNEEEE This value means that the callback procedure has successfully finished the conversion. The widget class conversion procedure, if any, is not called after the callback procedures return. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____RRRREEEEFFFFUUUUSSSSEEEE This value means that the callback procedure has terminated the conversion process without completing the requested conversion. The widget class conversion procedure, if any, is not called after the callback procedures return. _v_a_l_u_e An IN/OUT parameter that contains any data that the callback procedure produces as a result of the conversion. The initial value is NULL. If the callback procedure sets this member, it must ensure that the _t_y_p_e, _f_o_r_m_a_t, and _l_e_n_g_t_h members correspond to the data in _v_a_l_u_e. The callback procedure is responsible for allocating, but not for freeing, memory when it sets this member. _t_y_p_e An IN/OUT parameter that indicates the type of the data in the _v_a_l_u_e member. The initial value is _I_N_T_E_G_E_R. _f_o_r_m_a_t An IN/OUT parameter that specifies whether the data in _v_a_l_u_e should be viewed as a list of _c_h_a_r, _s_h_o_r_t, or _l_o_n_g quantities. The initial value is 8. The callback procedure can set this member to 8 (for a list of _c_h_a_r), 16 (for a list of _s_h_o_r_t), or 32 (for a list of _l_o_n_g). _l_e_n_g_t_h An IN/OUT member that specifies the number of elements of data in _v_a_l_u_e, where each element has the size symbolized by _f_o_r_m_a_t. The initial value is 0. Page 7 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) A pointer to the following callback structure is passed to the XXXXmmmmNNNNddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk procedures: typedef struct { int _r_e_a_s_o_n; XEvent *_e_v_e_n_t; Atom _s_e_l_e_c_t_i_o_n; XtEnum _o_p_e_r_a_t_i_o_n; int _f_l_a_g_s; XtPointer _t_r_a_n_s_f_e_r__i_d; XtPointer _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a; XtPointer _l_o_c_a_t_i_o_n__d_a_t_a; Time _t_i_m_e; } XmDestinationCallbackStruct; _r_e_a_s_o_n Indicates why the callback was invoked. _e_v_e_n_t Points to the _X_E_v_e_n_t that triggered the callback. It can be NULL. _s_e_l_e_c_t_i_o_n Indicates the selection for which data transfer is being requested. Possible values are _C_L_I_P_B_O_A_R_D, _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP. _o_p_e_r_a_t_i_o_n Indicates the type of transfer operation requested. +o When the selection is _P_R_I_M_A_R_Y, possible values are XXXXmmmmMMMMOOOOVVVVEEEE, XXXXmmmmCCCCOOOOPPPPYYYY, and XXXXmmmmLLLLIIIINNNNKKKK. +o When the selection is _S_E_C_O_N_D_A_R_Y or _C_L_I_P_B_O_A_R_D, possible values are XXXXmmmmCCCCOOOOPPPPYYYY and XXXXmmmmLLLLIIIINNNNKKKK. +o When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, possible values are XXXXmmmmMMMMOOOOVVVVEEEE, XXXXmmmmCCCCOOOOPPPPYYYY, XXXXmmmmLLLLIIIINNNNKKKK, and XXXXmmmmOOOOTTTTHHHHEEEERRRR. A value of XXXXmmmmOOOOTTTTHHHHEEEERRRR means that the callback procedure must get further information from the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt in the _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a member. _f_l_a_g_s Indicates whether or not the destination widget is also the source of the data to be transferred. Following are the possible values: XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____NNNNOOOONNNNEEEE The destination widget is not the source of the data to be transferred. XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTTIIIINNNNGGGG____SSSSAAAAMMMMEEEE Page 8 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) The destination widget is the source of the data to be transferred. ttttrrrraaaannnnssssffffeeeerrrr____iiiidddd Serves as a unique ID to identify the transfer transaction. _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a Contains information about the destination. When the selection is ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP, the callback procedures are called by the drop site's XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc, and _d_e_s_t_i_n_a_t_i_o_n__d_a_t_ais a pointer to the XXXXmmmmDDDDrrrrooooppppPPPPrrrrooooccccCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt passed to the XXXXmmmmNNNNddddrrrrooooppppPPPPrrrroooocccc procedure. When the selection is _S_E_C_O_N_D_A_R_Y, _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a is an Atom representing a target recommmended by the selection owner for use in converting the selection. Otherwise, _d_e_s_t_i_n_a_t_i_o_n__d_a_t_a is NULL. llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa Contains information about the location where data is to be transferred. The value is always NULL when the selection is _S_E_C_O_N_D_A_R_Y or _C_L_I_P_B_O_A_R_D. If the value is NULL, the data is to be inserted at the widget's cursor position. llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa is only valid for the duration of a transfer. Once _X_m_T_r_a_n_s_f_e_r_D_o_n_e procedures start to be called, llllooooccccaaaattttiiiioooonnnn____ddddaaaattttaaaa will no longer be stable. _t_i_m_e Indicates the time when the transfer operation began. TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss XmDrawingArea inherits translations from XmManager. Before calling the XmManager actions, all events in the inherited translations except <<<<BBBBttttnnnnMMMMoooottttiiiioooonnnn>>>>, <<<<EEEEnnnntttteeeerrrrWWWWiiiinnnnddddoooowwww>>>>, <<<<LLLLeeeeaaaavvvveeeeWWWWiiiinnnnddddoooowwww>>>>, <<<<FFFFooooccccuuuussssIIIInnnn>>>>, and <<<<FFFFooooccccuuuussssOOOOuuuutttt>>>> also call the DrawingAreaInput() action. XmDrawingArea has the following additional translations. The following key names are listed in the X standard key event translation table syntax. This format is the one used by Motif to specify the widget actions corresponding to a given key. A brief overview of the format is provided under VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). For a complete description of the format, please refer to the X Toolkit Instrinsics Documentation. <<<<BBBBttttnnnnDDDDoooowwwwnnnn>>>>: DrawingAreaInput() <<<<BBBBttttnnnnUUUUpppp>>>>: DrawingAreaInput() Page 9 (printed 4/6/01) XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa((((3333XXXX)))) <<<<KKKKeeeeyyyyDDDDoooowwwwnnnn>>>>: DrawingAreaInput() ManagerGadgetKeyInput() <<<<KKKKeeeeyyyyUUUUpppp>>>>: DrawingAreaInput() AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss The XXXXmmmmDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa action routines are DrawingAreaInput(): Unless the event takes place in a gadget, calls the callbacks for XXXXmmmmNNNNiiiinnnnppppuuuuttttCCCCaaaallllllllbbbbaaaacccckkkk ManagerGadgetKeyInput(): Causes the current gadget to process a keyboard event AAAAddddddddiiiittttiiiioooonnnnaaaallll BBBBeeeehhhhaaaavvvviiiioooorrrr The XmDrawingArea widget has the following additional behavior: <<<<EEEExxxxppppoooosssseeee>>>>: Calls the callbacks for XXXXmmmmNNNNeeeexxxxppppoooosssseeeeCCCCaaaallllllllbbbbaaaacccckkkk <<<<WWWWiiiiddddggggeeeetttt RRRReeeessssiiiizzzzeeee>>>>: Calls the callbacks for XXXXmmmmNNNNrrrreeeessssiiiizzzzeeeeCCCCaaaallllllllbbbbaaaacccckkkk VVVViiiirrrrttttuuuuaaaallll BBBBiiiinnnnddddiiiinnnnggggssss The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). RRRREEEELLLLAAAATTTTEEEEDDDD CCCCoooommmmppppoooossssiiiitttteeee(3), CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt(3), CCCCoooorrrreeee(3), XXXXmmmmCCCCrrrreeeeaaaatttteeeeDDDDrrrraaaawwwwiiiinnnnggggAAAArrrreeeeaaaa(3), and XXXXmmmmMMMMaaaannnnaaaaggggeeeerrrr(3). Page 10 (printed 4/6/01)